在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-25
並且有測試可以讓大家練習。
今天繼續介紹 Array
的常用函數: last
, lookup
。
const last: <A>(as: A[]) => Option<A>;
pipe(
xs, // [1, 2, 3]
last // O.some(3)
)
pipe(
xs, // []
last // O.none
)
last
就如同前幾天介紹到的 head
一樣,在可以獲取時會是 O.some
,否則為 O.none
,兼顧安全性和簡潔性。
const lookup: { (i: number): <A>(as: A[]) => Option<A>; <A>(i: number, as: A[]): Option<A> };
pipe(
xs, // [1, 2, 3]
lookup(1) // O.some(2)
)
pipe(
xs, // [1, 2, 3]
loockup(3) // O.none
)
lookup(i)
可以視為 type safe
的 xs[i]
。
今天的主題在 should-i-use-fp-ts 在 src/day-25
並且有測試可以讓大家練習。